package com.demo.java.OD551_600.OD587;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【字符串比较(B卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146570626
 */
public class OdMain {
    public static void main(String[] args) {
        // 处理输入
        Scanner in = new Scanner(System.in);
        String A = in.nextLine();  // 输入字符串 A
        String B = in.nextLine();  // 输入字符串 B
        String V = in.nextLine();  // 输入最大允许的 ASCII 差 V

        // 将字符串 A 和 B 转换为字符数组
        char[] arr_a = A.toCharArray();
        char[] arr_b = B.toCharArray();
        int v = Integer.parseInt(V);  // 将 V 转换为整数

        int left = 0;  // 左边界
        int result = 0;  // 最终结果（最大符合条件的字符串长度）
        int ascii_distance = 0;  // ASCII 差

        // 遍历字符串 A 中的字符
        for (int i = 0; i < arr_a.length - 1; i++) {
            int right = 0;  // 右边界
            // 检查相邻字符的 ASCII 差是否为 1（即相邻字符是否是连续的）
            if (arr_a[i + 1] == arr_a[i] + 1) {
                right = i + 1;  // 如果是连续字符，则更新右边界
            } else {
                left = i + 1;  // 如果不是连续字符，则将左边界更新为 i + 1，继续下一次循环
                continue;  // 继续下一个字符的比较
            }

            // 检查 B 中相邻字符的 ASCII 差是否小于等于 V
            for (int j = left; j <= right - 1; j++) {
                // 如果 B 中相邻字符的 ASCII 差不等于 1，则退出循环
                if (arr_b[j + 1] != arr_b[j] + 1) {
                    ascii_distance = 0;  // 重置 ASCII 差
                    break;  // 退出循环
                }

                // 计算 A 和 B 中字符的 ASCII 差
                if (j == left) {
                    ascii_distance += Math.abs(arr_a[j] - arr_b[j]);  // 如果是左边界字符，计算第一次的 ASCII 差
                }
                ascii_distance += Math.abs(arr_a[j + 1] - arr_b[j + 1]);  // 计算后续字符的 ASCII 差
            }

            // 更新最大符合条件的字符串长度
            int temp_length = right - left + 1;  // 当前匹配的子串长度
            // 如果 ASCII 差小于等于 V 并且当前长度大于之前的最大长度，更新结果
            if (ascii_distance <= v && temp_length > result) {
                result = temp_length;  // 更新最大符合条件的子串长度
                ascii_distance = 0;  // 重置 ASCII 差
            }
        }

        // 输出结果，即最大符合条件的字符串长度
        System.out.println(result);
        return;
    }
}
